home *** CD-ROM | disk | FTP | other *** search
- #include "ZAMProtos.h"
-
-
- void CollideSpriteLayer(spriteLayerPtr sprLayer1, spriteLayerPtr sprLayer2)
- /*
- VERY Simple colission detection. A sprite is not checked unless it has
- a callback, so if you have things that can never be collided with,
- don't give them a colission callback. Layers are collided against each other,
- so sprites in the same layer can never collide.
- */
- {
- spritePtr spr1, spr2;
- Rect sectArea;
-
- for(spr1 = sprLayer1->sprites; spr1 != nil; spr1 = spr1->next)
- for(spr2 = sprLayer2->sprites; spr2 != nil; spr2 = spr2->next)
- if(spr1->collideHandler || spr2->collideHandler) {
- if( SectRect(&spr1->bounds, &spr2->bounds, §Area) ) {
- /* we have a rectangle colission - call the handlers if installed */
- if(spr1->collideHandler)
- (*spr1->collideHandler)(spr1, spr2, §Area);
- if(spr2->collideHandler)
- (*spr2->collideHandler)(spr2, spr1, §Area);
- }
- }
-
- }